Hierarchical Temporal Memory (HTM) system represents a new approach to machine intelligence. In HTM systems, temporal sequences of patterns are presented to a network of nodes in training data. The HTM systems then build a model of the statistical structure inherent to the patterns and sequences in the training data, and thereby learns the underlying ‘causes’ of the temporal sequences of patterns and sequences in the training data. The hierarchical structure of the HTM systems allow them to build models of very high dimensional input spaces using reasonable amounts of memory and processing capacity.
FIG. 1 is a diagram illustrating a hierarchical nature of the HTM network where the HTM network 10 has three levels L1, L2, L3, with level L1 being the lowest level, level L3 being the highest level, and level L2 being between levels L1 and L3. Level L1 has nodes 11A, 11B, 11C and 11D; level L2 has nodes 12A and 12B; and level L3 has node 13. In the example of FIG. 1, the nodes 11A, 11B, 11C, 11D, 12A, 12B, and 13 are hierarchically connected in a tree-like structure such that each node has several children nodes (i.e., nodes connected at a lower level) and one parent node (i.e., node connected at a higher level). Each node 11A, 11B, 11C, 11D, 12A, 12B, and 13 may have or be associated with a capacity to store and process information. For example, each node 11A, 11B, 11C, 11D, 12A, 12B, and 13 may store sensed input data (e.g., sequences of patterns) associated with particular causes. Further, each node 11A, 11B, 11C, 11D, 12A, 12B, and 13 may be arranged to (i) propagate information “forward” (i.e., “up” an HTM hierarchy) to any connected parent node and/or (ii) propagate information “back” (i.e., “down” an HTM hierarchy) to any connected children nodes.
The nodes are associated or coupled to each other by links. A link represents logical or physical relationship between an output of a node and an input of another node. Outputs from a node in the form of variables are communicated between the nodes via the links. Inputs to the HTM 10 from, for example, a sensory system, are supplied to the level L1 nodes 11A-D. A sensory system through which sensed input data is supplied to level L1 nodes 11A-D may relate to various senses (e.g., touch, sight, sound).
The HTM network may be implemented on a system running on one or more computing devices. The system may be configured to operate in conjunction with various sensory systems and processing algorithms to efficiently learn structures in the input data in a training mode and determine cause of the data in an inference mode. In order to expand the applications of the HTM network, it is preferable to provide a system that can function with diverse types of components. Especially, the system for the HTM network should provide an environment in which diverse software and hardware components can be integrated. Such software and hardware components, for example, may be developed by different entities.
One way of affording flexibility to the system for the HTM is providing abstract interfaces for one or more of the components of the HTM network. For example, an abstract interface may be implemented using a base class using object-oriented programming languages (e.g., C++ and Java® (developed by Sun Microsystems, Inc. of Santa Clara, Calif.)). The abstract interface may be used for instantiating various components for the HTM.